package ningbo.oopextends;

import com.sun.org.apache.bcel.internal.generic.NEW;

/**
 * @Author 宁铂
 * @Date 2021/7/12 9:12
 * @Version 1.0
 */
public class TestExtends2 {
    /** 本类测试方继承中方法的调用 */
    public static void main(String[] args) {
        Son2 son2 = new Son2();
        son2.eat();
        son2.work();
        new Father2().eat();
    }
}

class Father2{
    //创建普通方法
    public void eat(){
        System.out.println("爸爸爱吃肉~");
    }

    public void play(){
        System.out.println("爱放风筝~");
    }
}

class Son2 extends Father2{
    /** 方法的重写 : 继承之后,子类对父类的方法不满意,可以重写*/
    public void eat(){
        System.out.println("儿子爱吃蔬菜~");
    }

    /** 子类可以用于自己特有的功能 */
    public void work(){
        System.out.println("程序员");
    }

    /** 方法重写的规则: 两同两小一大的原则
     *  两同:方法名&参数列表(方法签名)保持一致
     *  两小:子类的返回值类型 <= 父类的返回值类型(继承关系的 <= 如:父类的返回值是动物,那子类的返回值可以是猫)
     *       子类抛出的异常类型 <= 父类抛出的异常类型
     *  一大:子类的方法修饰符要 >=父类的修饰符
     * */
}